843. Перестановки
букв
Дана строка,
состоящая из m символов. Выведите все перестановки символов
заданной строки.
Вход. Одна строка
из m (2 ≤ m ≤ 8)
символов – букв латинского
алфавита и цифр.
Выход. Выведите все
перестановки заданной строки в лексикографическом порядке.
Пример
входа |
Пример
выхода |
AB |
AB BA |
комбинаторика - перебор
В задаче следует сгенерировать все перестановки букв в
заданной строке. Это можно сделать, например, при помощи функции next_permutation.
Читаем
входную строку в символьный массив s. Вычисляем ее длину len.
gets(s); len = strlen(s);
Сортируем буквы в возрастающем порядке. В результате
сортировки строка s содержит лексикографически наименьшую перестановку.
sort(s, s + len);
Генерируем и выводим все перестановки букв
в строке s.
do
{
puts(s);
} while (next_permutation(s, s + len));
Читаем входную строку.
cin >> s;
Сортируем буквы в возрастающем порядке. В результате
сортировки строка s содержит лексикографически наименьшую перестановку.
sort(s.begin(), s.end());
Генерируем и выводим все перестановки букв
в строке s.
do
{
cout << s << endl;
} while (next_permutation(s.begin(),
s.end()));